/**
 * 将字符串s1全部用s2替换（暂时没用到） g 执行全局匹配（查找所有匹配而非在找到第一个匹配后停止）。 m 执行多行匹配。
 */
String.prototype.replaceAll = function(s1, s2) {
	return this.replace(new RegExp(s1, "gm"), s2);
}

/**
 * 检测长度
 * 
 * @param o源对象
 * @param n对象名称
 * @param min最小长度
 * @param max最大长度
 * @returns {Boolean}
 */
function checkLength(tips, o, n, min, max) {
	if (o.val().length > max || o.val().length < min) {
		o.addClass("ui-state-error");
		updateTips(tips, n + "长度必须位于" + min + " ~ " + max + "之间。");
		return false;
	} else {
		return true;
	}
}

/**
 * 检查正则表达式
 * 
 * @param o
 * @param regexp
 * @param n
 * @returns {Boolean}
 */
function checkRegexp(tips, o, regexp, n) {
	if (!(regexp.test(o.val()))) {
		o.addClass("ui-state-error");
		updateTips(tips, n);
		return false;
	} else {
		return true;
	}
}

/**
 * 检测字符串是否相同
 * 
 * @param source
 * @param target
 * @param info不一致是报错信息
 * @returns {Boolean}
 */
function checkSame(tips, source, target, info) {
	if (source.val() != target.val()) {
		target.addClass("ui-state-error");
		updateTips(tips, info);
		return false;
	} else {
		return true;
	}
}

/**
 * 添加页面窗口
 * 
 * @param targetWindow表单提交成功后需要刷新的窗口
 * @param loadUrl需要加载的编辑页面url
 */
function dialog_add_form(targetWindow, loadUrl, title) {
	showProgressbar();
	var add_dialog = $("#form_dialog_div");
	$("#form_div").load(loadUrl,function(data) {
		hideProgressbar();
		var targetForm = $("#form_div form:first");
		add_dialog.dialog({
			dialogClass : "no-close",
			resizable : false,
			height : "auto",
			width : "auto",
			title : title,
			modal : true,
			open : function() {
				var btn_event = add_dialog
						.next(".ui-dialog-buttonpane").find(
								"button:first");
				$(this).keypress(function(event) {
						responseKeyEvents("添加", btn_event, event, "ctrl_enter");
					}
				);
				$(this).find("input").focus(function(){
					$(window).unbind();// 取消屏蔽退格键
				});
				$(this).find("input").blur(function(){
					// 屏蔽退格删除键
					$(window).keydown(function(event) {
						if (event.keyCode == 8) {
							return false;
						}
					});
				});
			},
			buttons : {
				"添加" : function() {
					add_dialog.dialog("close");
					showProgressbar();
					$.post(targetForm.attr("action"), targetForm
							.serialize(), function(data) {
						hideProgressbar();
						if (data.msg == "true") {
							targetWindow.location.reload();
						}
					}, "json");
				},
				"取消" : function() {
					$(this).unbind();
					$(window).unbind();
					add_dialog.dialog("close");
				}
			}
		});
	});
}

/**
 * 弹出确认对话框
 * 
 * @param title对话框标题
 * @param msg对话框提示信息，默认是“确定？”
 * @param callback点击继续后执行的方法
 */
function dialog_confirm(title, msg, callback) {
	$("#confirm_dialog_div").dialog(
			{
				resizable : false,
				height : "auto",
				title : title,
				modal : true,
				open : function() {
					// 响应回车键继续
					var btn_event = $("#confirm_dialog_div").next(
							".ui-dialog-buttonpane").find("button:first");
					$(this).keypress(function(event) {
						responseKeyEvents("继续", btn_event, event, "enter");
					});

					// 设置提示内容
					$("#confirm_dialog_div p .msg").first().text(msg);

					// 屏蔽退格删除键
					$(window).keydown(function(event) {
						if (event.keyCode == 8) {
							return false;
						}
					});
				},
				buttons : {
					"继续" : function() {
						callback();
						$(this).unbind();
						$(window).unbind();
						$(this).dialog("close");
					},
					"取消" : function() {
						$(this).unbind();
						$(window).unbind();
						$(this).dialog("close");
					}
				}
			});
}

/**
 * 编辑页面窗口
 * 
 * @param targetWindow表单提交成功后需要刷新的窗口
 * @param loadUrl需要加载的编辑页面url
 */
function dialog_edit_form(targetWindow, loadUrl, title) {
	showProgressbar();
	var edit_dialog = $("#form_dialog_div");
	$("#form_div").load(loadUrl,function(data) {
		hideProgressbar();
		var targetForm = $("#form_div form:first");
		edit_dialog.dialog({
			dialogClass : "no-close",
			resizable : false,
			height : "auto",
			width : "auto",
			title : title,
			modal : true,
			open : function() {
				var btn_event = edit_dialog.next(
						".ui-dialog-buttonpane").find("button:first");
				$(this).keypress(function(event) {
						responseKeyEvents("提交", btn_event, event, "ctrl_enter");
					}
				);
				$(this).find(".text").focus(function(){
					$(window).unbind();// 取消屏蔽退格键
				});
				$(this).find(".text").blur(function(){
					// 屏蔽退格删除键
					$(window).keydown(function(event) {
						if (event.keyCode == 8) {
							return false;
						}
					});
				});
				
			},
			buttons : {
				"提交" : function() {
					$(window).unbind();
					edit_dialog.dialog("close");
					showProgressbar();
					$.post(targetForm.attr("action"), targetForm
							.serialize(), function(data) {
						hideProgressbar();
						if (data.msg == "true") {
							targetWindow.location.reload();
						}
					}, "json");
				},
				"取消" : function() {
					$(this).unbind();
					$(window).unbind();
					$(this).dialog("close");
				}
			}
		});
	});
}

/**
 * 密码修改窗口
 * 
 * @param loadUrl需要加载的密码修改页面
 */
function dialog_modify_password(loadUrl) {
	var bValid;
	$("#form_div").load(loadUrl,function(data) {
		hideProgressbar();
		// 初始化变量
		var oldPassword = $("#oldPassword"), newPassword = $("#newPassword"), rePassword = $("#rePassword"), allFields = $(
				[]).add(newPassword).add(rePassword), tips = $(".validateTips"), check_ico = $("#check_ico"), targetForm = $("#form_div form:first"), dialog_modify_password = $("#form_dialog_div");
		check_ico.css({
			visibility : "hidden"
		});
		bValid = false;

		// 检验旧密码
		oldPassword.blur(function() {
			$.post("user_checkPassword.action", {
				password : $(this).val()
			}, function(data) {
				check_ico.css({
					visibility : "visible"
				});
				if (data.msg == "true") {
					check_ico.attr("src", "images/ok.ico");
					bValid = true;
				} else {
					check_ico.attr("src", "images/no.ico");
					oldPassword.focus();
					oldPassword.select();
					updateTips(tips, "错误的密码！");
					bValid = false;
				}
			}, "json");

		});

		// 初始化并打开窗口
		dialog_modify_password.dialog({
			dialogClass : "no-close",
			resizable : false,
			height : "auto",
			width : "auto",
			title : "修改密码",
			modal : true,
			open : function() {
				var btn_event = dialog_modify_password.next(
						".ui-dialog-buttonpane").find(
						"button:first");
				$(this).keypress(
						function(event) {
							responseKeyEvents("提交", btn_event,
									event, "enter");
						});
			},

			buttons : {
				"提交" : function() {
					allFields.removeClass("ui-state-error");
					bValid = checkLength(tips, newPassword,
							"密码", 5, 16)
							&& checkSame(tips, newPassword,
									rePassword, "两次密码输入不一致");
					if (bValid) {
						$(window).unbind();
						dialog_modify_password.dialog("close");
						showProgressbar();
						$.post(targetForm.attr("action"),
								targetForm.serialize(),
								function(data) {
									if (data.msg == "true") {
										hideProgressbar();
										top.dialog_msg(
												"密码修改成功！",
												"成功", null);
									}

								}, "json");
					}
				},
				"取消" : function() {
					$(this).unbind();
					$(window).unbind();
					$(this).dialog("close");
				}
			}
		});
	});
}

/**
 * 初始化密码成功提示窗口
 * 
 * @param msg
 *            提示信息
 * @param title
 *            对话框标题
 * @param callback
 *            确定以后执行的任务
 */
function dialog_msg(msg, title, callback) {
	$("#msg_dialog_div").html(msg);
	// $("#msg_dialog_div").text(msg);
	$("#msg_dialog_div").dialog(
			{
				resizable : false,
				height : "auto",
				width : "auto",
				title : title,
				modal : true,
				open : function() {
					var btn_event = $("#msg_dialog_div").next(
							".ui-dialog-buttonpane").find("button:first");
					$(this).keypress(function(event) {
						responseKeyEvents("确定", btn_event, event, "enter");
					});

					// 屏蔽退格删除键
					$(window).keydown(function(event) {
						if (event.keyCode == 8) {
							return false;
						}
					});
				},
				buttons : {
					"确定" : function() {
						$(this).unbind();
						$(window).unbind();
						if (typeof (callback) == "function") {
							callback();
						}
						$(this).dialog("close");
						// if (callback == "reload") {
						// $(this).dialog("close");
						// targetWindow.location.reload();
						// } else {
						// $(this).dialog("close");
						// }
					}
				}
			});
}

/**
 * 权限修改确认框
 * 
 * @param targetWindow操作成功后需要刷新的窗口
 * @param url要传递的url
 * @param title对话框标题
 */
function dialog_setPrivilege_confirm(targetWindow, url, title, treeObj) {
	var info = getChange(treeObj);
	var confirm_dialog = $("#confirm_dialog_div");
	confirm_dialog.find(".info").html(info);
	confirm_dialog.dialog({
		resizable : false,
		height : "auto",
		title : title,
		modal : true,
		open : function() {
			var btn_event = confirm_dialog.next(".ui-dialog-buttonpane").find(
					"button:first");
			$(this).keypress(function(event) {
				responseKeyEvents("继续", btn_event, event, "enter");
			});
		},
		buttons : {
			"继续" : function() {
				$.post(url, function(data) {
					if (data.msg == "true") {
						confirm_dialog.dialog("close");
						confirm_dialog.find(".info").html("");// 删除内容
						targetWindow.location.href = "role_list.action";
					}
				}, "json");
			},
			"取消" : function() {
				$(this).unbind();
				$(this).dialog("close");
				confirm_dialog.find(".info").html("");// 删除内容
			}
		}
	});
}

/**
 * 流程申请窗口（暂时废弃）
 * 
 * @param loadUrl需要加载的编辑页面url
 * @param title
 */
function dialog_submit_process(loadUrl, title) {
	var edit_dialog = $("#form_dialog_div");
	$("#form_div").load(
			loadUrl,
			function(data) {
				hideProgressbar();
				var targetForm = $("#form_div form:first");
				edit_dialog.dialog({
					// dialogClass : "no-close",
					resizable : false,
					height : "auto",
					width : "auto",
					title : title,
					modal : true,
					open : function() {
						var btn_event = edit_dialog.next(
								".ui-dialog-buttonpane").find("button:first");
						$(this).keypress(
								function(event) {
									responseKeyEvents("开始流转", btn_event, event,
											"ctrl_enter")
								});
						// 屏蔽退格删除键
						$(window).keydown(function(event) {
							if (event.keyCode == 8) {
								return false;
							}
						});
					},
					buttons : {
						"开始流转" : function() {
							$(window).unbind();
							edit_dialog.dialog("close");
							showProgressbar();
							$.post(targetForm.attr("action"), targetForm
									.serialize(), function(data) {
								if (data.msg == "true") {
									hideProgressbar();
								}
							}, "json");
						},
						"取消" : function() {
							$(this).unbind();
							$(window).unbind();
							$(this).dialog("close");
						}
					}
				});
			});
}

/**
 * 上传文件页面窗口
 * 
 * @param targetWindow
 * @param loadUrl需要加载的编辑页面url
 * @param title窗口标题
 */
function dialog_upload_form(targetWindow, loadUrl, title) {
	showProgressbar();
	var upload_dialog = $("#form_dialog_div");
	$("#form_div").load(loadUrl,function(data) {
		hideProgressbar();
		var targetForm = $("#form_div form:first");
		upload_dialog.dialog({
			dialogClass : "no-close",
			resizable : false,
			height : "auto",
			width : "auto",
			title : title,
			modal : true,
			open : function() {
				var btn_event = upload_dialog.next(
						".ui-dialog-buttonpane").find("button:first");
				$(this).keypress(
						function(event) {
							responseKeyEvents("确定上传", btn_event, event,
									"enter");
						});
			},
			buttons : {
				"确定上传" : function() {
					upload_dialog.dialog("close");
					showProgressbar();
					targetForm.submit();
					$("#hidden_frame").load(
							function() {
								hideProgressbar();
								var right_frame = $("#index_frome")
										.contents()
										.find("#right_frame");
								right_frame.attr("src", right_frame
										.attr("src"));
							});

				},
				"取消" : function() {
					$(this).unbind();
					$(this).dialog("close");
				}
			}
		});
	});
}

/**
 * 查看页面窗口
 * 
 * @param loadUrl需要加载的编辑页面url
 * @param title需要加载的编辑页面url
 */
function dialog_watch_form(loadUrl, title) {
	showProgressbar();
	var watch_dialog = $("#form_dialog_div");
	$("#form_div").load(loadUrl, function(data) {
		hideProgressbar();
		watch_dialog.dialog({
			dialogClass : "no-close",
			resizable : false,
			height : "auto",
			width : "auto",
			title : title,
			modal : true,
			open : function() {
				$(window).keydown(function(event) {
					// 屏蔽退格删除键
					if (event.keyCode == 8) {
						return false;
					}
				});
			},
			buttons : {
				"确定" : function() {
					$(window).unbind();
					watch_dialog.dialog("close");
				}
			}
		});
	});
}

/**
 * 将修改的权限拼成字符串
 * 
 * @param treeObj
 * @returns {String}
 */
function getChange(treeObj) {
	var nodes = treeObj.transformToArray(treeObj.getNodes());
	var length = nodes.length;
	var count = 0;
	var add = "<b>添加了权限——</b>";
	var remove = "<b>移除了权限——</b>";
	for (var i = 0; i < length; i++) {
		if (nodes[i].checked != nodes[i].checkedOld) {
			if (nodes[i].checked == false) {
				remove += nodes[i].name + " ";
			} else {
				add += nodes[i].name + " ";
			}
			count++;
		}

	}
	return "共修改" + count + "处:<br/><br/>" + add + "<br/><br/>" + remove;
}

/**
 * 获取网站根路径——格式：http://localhost:8080/simple_erp
 * 
 * @returns
 */
function getRootPath() {
	var strFullPath = window.document.location.href;
	var strPath = window.document.location.pathname;
	var pos = strFullPath.indexOf(strPath);
	var prePath = strFullPath.substring(0, pos);
	var postPath = strPath.substring(0, strPath.substr(1).indexOf('/') + 1);
	// prePath: http://localhost:8080
	// postPath: /simple_erp
	return (prePath + postPath);
}

/**
 * 得到要传递到后台的权限url
 * 
 * @param treeObj
 * @param id
 * @returns {String}
 */
function getUrl(treeObj, id) {
	var checkedNodes = treeObj.getCheckedNodes(true);
	var checkeIds = "";
	for (var i = 0; i < checkedNodes.length; i++) {
		checkeIds += "privilegeIds=" + checkedNodes[i].id;
		if (checkedNodes[i + 1] && typeof (checkedNodes[i + 1]) != "undefined") {
			checkeIds += "&";
		}
	}
	var url = "role_setPrivilege.action?id=" + id + "&" + checkeIds;
	return url;
}

/**
 * 隐藏进度条和遮罩层
 */
function hideProgressbar() {
	var progressbar = $("#progressbar");
//	progressbar.progressbar("destroy");
	progressbar.hide();
//	progressbar.progressbar( "disable" );
	$("#overlay").hide();
}

/**
 * 初始化添加页面
 */
function init_add_page() {
	$("input[type=text],textarea").addClass("ui-widget-content ui-corner-all");
	$("#a_flow").button();
	$("#a_calc").button();
	$("#a_save").button();
	$("#a_cancel").button();
	
	$.datepicker.setDefaults({
			dateFormat: "yy-mm-dd",
			gotoCurrent: true,
			showOn: "both",
			buttonImage: getRootPath()+"/images/calendar.png",
			buttonImageOnly: true
	});
	// 需要引入js语言包如datepicker-zh-TW.js
	$("#from,#to").datepicker($.datepicker.regional[ "zh-TW" ]);

	$("#from").datepicker("option", {
		dateFormat : "yy-mm-dd",
		minDate: new Date(),
		onClose : function(selectedDate) {
			$("#to").datepicker("option", "minDate", selectedDate);
		}
	});
	$("#to").datepicker("option", {
		dateFormat : "yy-mm-dd",
		onClose : function(selectedDate) {
			$("#from").datepicker("option", "maxDate", selectedDate);
		}
	});
	
	$("#a_calc").click(function(){
		$("#dayNumber").val(DateDiff($("#from").val(), $("#to").val()));
	})
	
	$("#a_flow").click(function() {
		var targetForm = $(this).parent("form");
		top.showProgressbar();
		
		$.post(targetForm.attr("action"), targetForm.serialize(),
				function(data) {
					top.hideProgressbar();
					if (data.msg == "true") {
						var reload = function(){
							var right_frame = $(window.parent.document).find("#right_frame");
							window.parent["right_frame"].location.href = right_frame.attr("src");
						}
						if(typeof (data.auditor) != "undefined"){
							top.dialog_msg("流程发起成功！下一个节点：<b>" + data.auditor+"</b>",
									"流程信息", reload);
						}else{
							top.dialog_msg("流程已结束！", "流程信息", reload);
						}
					}
				}, "json");
		return false;
	});
}


/**
 * 计算天数差的函数，通用
 * 
 * @param sDate1 格式:yyyy-mm-dd
 * @param sDate2 格式:yyyy-mm-dd
 * @returns
 */
function DateDiff(sDate1, sDate2) { // sDate1和sDate2是2006-12-18格式
	var aDate, oDate1, oDate2, iDays
	aDate = sDate1.split("-")
	oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]) // 转换为12-18-2006格式
	aDate = sDate2.split("-")
	oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0])
	iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 / 24) // 把相差的毫秒数转换为天数
	return iDays
}

/**
 * 初始化编辑页面
 */
function init_edit_page() {
	$("input.text").addClass("ui-widget-content ui-corner-all");
}

/**
 * 初始化左部导航页面
 */
function init_left_page() {
	var right_frame = $('#right_frame', parent.document.body);

	var icons = {
		header : "ui-icon-circle-arrow-e",
		activeHeader : "ui-icon-circle-arrow-s"
	};
	$("#accordion").accordion({
		heightStyle : "content",
		icons : icons,
		collapsible : true
	});
	$(".item").each(function() {
		$(this).click(function() {
			right_frame.attr("src", $(this).attr("href"));
			return false;
		});
	});
}

/**
 * 初始化列表页面
 */
function init_list_page() {
	$("#a_add_procDef").button();
	$(".a_add_department").button();
	$(".a_add_forum").button();
	$(".a_add_reply").button();
	$(".a_add_role").button();
	$(".a_add_topic").button();
	$(".a_add_user").button();

	$("input.text").addClass("ui-widget-content ui-corner-all");

	$("#a_add_procDef").click(function() {
		top.dialog_upload_form(window, $(this).attr("href"), "部署流程定义文档");
		return false;
	});
	$(".a_add_user").each(function() {
		$(this).click(function() {
			top.dialog_add_form(window, $(this).attr("href"), "添加用户");
			return false;
		});
	});
	$(".a_add_department").each(function() {
		$(this).click(function() {
			top.dialog_add_form(window, $(this).attr("href"), "添加部门");
			return false;
		});
	});
	$(".a_add_role").each(function() {
		$(this).click(function() {
			top.dialog_add_form(window, $(this).attr("href"), "添加角色");
			return false;
		});
	});
	$(".a_add_forum").each(function() {
		$(this).click(function() {
			top.dialog_add_form(window, $(this).attr("href"), "添加版块");
			return false;
		});
	});
	$(".a_add_topic").each(function() {
		$(this).click(function() {
			top.dialog_add_form(window, $(this).attr("href"), "发表主题");
			return false;
		});
	});
	/*
	 * $(".a_add_timeOff").each(function() { $(this).click(function() {
	 * top.showProgressbar(); top.dialog_submit_process( $(this).attr("href"),
	 * "申请休假"); return false; }); });
	 */

	$(".a_delete").each(function() {
		var url = $(this).attr("href");
		$(this).click(function() {
			var callback = function() {
				top.showProgressbar();
				$.post(url, function(data) {
					if (data.msg == "true") {
						top.hideProgressbar();
						window.location.reload();
					}
				}, "json");
			}
			top.dialog_confirm("确认框", "确定删除？", callback);
			return false;
		});
	});

	$(".a_edit_user").each(function() {
		$(this).click(function() {
			top.dialog_edit_form(window, $(this).attr("href"), "修改用户");
			return false;
		});
	});
	$(".a_edit_department").each(function() {
		$(this).click(function() {
			top.dialog_edit_form(window, $(this).attr("href"), "修改部门");
			return false;
		});
	});
	$(".a_edit_role").each(function() {
		$(this).click(function() {
			top.dialog_edit_form(window, $(this).attr("href"), "修改角色");
			return false;
		});
	});
	$(".a_edit_forum").each(function() {
		$(this).click(function() {
			top.dialog_edit_form(window, $(this).attr("href"), "修改板块");
			return false;
		});
	});

	$(".a_initPassword").each(function() {
		$(this).click(function() {
			var url = $(this).attr("href");
			top.showProgressbar();
			$.post(url, function(data) {
				if (data.msg == "true") {
					top.hideProgressbar();
					top.dialog_msg("密码初始化成功！", "成功", null);
				}
			}, "json");
			return false;
		});
	});

	// 显示流程定义图片
	$(".a_show_img").each(function(index, domEle) {
		$(this).click(function() {
			top.dialog_watch_form($(this).attr("href"), "流程图片");
			return false;
		});
	});
	$(".a_show_apply").each(function() {
		$(this).click(function() {
			top.dialog_watch_form($(this).attr("href"), "申请表详情");
			return false;
		});
	});
	$(".a_watch").each(function(index, domEle) {
		$.post($(this).attr("href"), function(data) {
			$(domEle).attr("title", data.description);
		}, "json");
		$(this).tooltip({
			track : true
		});
		$(this).click(function() {
			/*
			 * top.showProgressbar();
			 * top.dialog_watch_form($(this).attr("href"), "查看");
			 */
			return false;
		});
	});

	$(".a_watch_summary").each(function(index, domEle) {
		var objDiv = $("#summary_div");
		var returnStr;
		objDiv.load($(domEle).attr("href"), function() {
			returnStr = $.trim(objDiv.html());
			$(domEle).tooltip({
				content : returnStr
			// ,show: { effect: "slideDown", duration: 250 }
			});

			$(domEle).click(function() {
				alert(returnStr);
				// console.info($(domEle));
				return false;
			});
		});

	});

	$(".a_moveUp").each(function() {
		if ($(this).parent().parent().index() == 0) {
			$(this).addClass("useless");
		}
		$(this).click(function() {
			var currentTr = $(this).parent().parent();
			var currentPosition = currentTr.index();
			if (currentPosition > 0) {
				top.showProgressbar();
				$.post($(this).attr("href"), function(data) {
					if (data.msg == "true") {
						var prevTr = currentTr.prev();// 筛选出前一个同辈元素
						currentTr.insertBefore(prevTr);
						updateCss();
						top.hideProgressbar();
					}
				}, "json");
			}
			return false;
		});
	});

	$(".a_moveDown").each(function() {

		if ($(this).parent().parent().next().length == 0) {
			$(this).addClass("useless");
		}
		$(this).click(function() {
			var currentTr = $(this).parent().parent();
			var nextTr = currentTr.next();
			if (nextTr.length == 1) {
				top.showProgressbar();
				$.post($(this).attr("href"), function(data) {
					if (data.msg == "true") {
						currentTr.insertAfter(nextTr);
						updateCss();
						top.hideProgressbar();
					}
				}, "json");
			}
			return false;
		});
	});

	$(".a_add_reply").each(
			function() {
				$(this).click(
						function() {
							top.showProgressbar();
							var targetForm = $("#reply_form_div form:first");
							$.post(targetForm.attr("action"), targetForm
									.serialize(), function(data) {
								top.hideProgressbar();
								if (data.msg == "true") {
									window.location.reload();
								}
							}, "json");
							return false;
						});
			});

	$(".a_removeType").each(function() {
		var objA = $(this);
		objA.click(function() {
			var url = objA.attr("href");
			top.showProgressbar();
			$.post(url, function(data) {
				top.hideProgressbar();
				if (data.msg == "true") {
					var reload = window.location.reload();
					top.dialog_msg("已" + objA.text(), "成功", reload);
				}
			}, "json");
			return false;
		});
	});

	$(".a_setType").each(function() {
		var objA = $(this);
		objA.click(function() {
			var url = objA.attr("href");
			top.showProgressbar();
			$.post(url, function(data) {
				top.hideProgressbar();
				if (data.msg == "true") {
					var reload = window.location.reload();
					top.dialog_msg("已" + objA.text(), "成功", reload);
				}
			}, "json");
			return false;
		});
	});

}

function init_login_page() {
	$("input[name='name']").focus();
	var tips = $(".validateTips");
	var tipsContent = $.trim(tips.text());
	if(tipsContent){
		updateTips(tips, tips.text());
	}
	
	// 操作是否选中radio
	var i = 1;
	$("#ifSave").click(function() {
		i++;
		if (i % 2 == 0) {
			$(this).attr("checked", "true");
			$(this).attr("name", "ifSave");
		} else {
			$(this).removeAttr("checked");
			$(this).removeAttr("name");
		}
	});

	$("#dialog-form").dialog(
			{
				// autoOpen: false,
				/** 去除jquery ui close按钮* */
				dialogClass : "no-close",
				height : "auto",
				width : 350,
				resizable : false,
				draggable : false,
				closeOnEscape : false,// 取消按Esc关闭dialog
				modal : true,
				open : function() {

					// jquery之dialog的键盘事件(输入完毕回车检索)
					$(this).keypress(
							function(event) {
								if (event.keyCode == $.ui.keyCode.ENTER) {
									if ($(".ui-dialog-buttonpane button:first")
											.text() == "登录") {
										$(".ui-dialog-buttonpane button:first")
												.click();
									}
								}
							});
				},
				buttons : {
					"登录" : function() {
						submit_form($("#dialog-form form"));
					}
				},
				close : function() {
					allFields.val("").removeClass("ui-state-error");
				}
			});

}

/**
 * 初始化权限设置页面
 * 
 * @param url要传递的url
 */
function init_setPrivilege_page(setting, zNodes, treeObj, id) {

	$("#radio").buttonset();

	$.fn.zTree.init($("#privilegeTree"), setting, zNodes);
	treeObj = $.fn.zTree.getZTreeObj("privilegeTree");
	treeObj.setting.check.chkboxType = {
		"Y" : "ps",
		"N" : "ps"
	};

	$("#checkAll").click(function() {
		treeObj.checkAllNodes(true);
		return false;
	});

	$("#unCheckAll").click(function() {
		treeObj.checkAllNodes(false);
		return false;
	});

	$("#back2original").click(function() {
		var nodes = treeObj.transformToArray(treeObj.getNodes());
		for (var i = 0; i < nodes.length; i++) {
			treeObj.checkNode(nodes[i], nodes[i].checkedOld, false);
		}
		;
		return false;
	});

	$("#a_setPrivilege").click(function() {
		var url = getUrl(treeObj, id);
		top.dialog_setPrivilege_confirm(window, url, "确定继续？", treeObj);
		return false;
	});

}

/**
 * 初始化编辑页面
 */
function init_show_page() {
	$(".unread").addClass("ui-widget-content ui-corner-all");
	$(".unread").attr("readonly", "readonly");
}

/**
 * 初始化顶部信息页面
 */
function init_top_page() {

	/*
	 * $("#btn_user").button({ icons: { secondary: "ui-icon-triangle-1-s" } })
	 * 
	 * $(".options_container").hover( function(){
	 * $(this).children(".options_item").show(); },function(){
	 * $(this).children(".options_item").hide(); })
	 */

	$("#a_modify_password").click(function() {
		top.showProgressbar();
		top.dialog_modify_password($(this).attr("href"));
		return false;
	});
}

/**
 * 初始化回收站页面
 */
function init_recycleBin_page() {
	$("#tabs_recycle").tabs({
		heightStyle : "fill",
		beforeLoad : function(event, ui) {
			top.showProgressbar();
			ui.jqXHR.fail(function() {
				ui.panel.html("载入标签页失败！");
			});
			ui.jqXHR.always(function() {
				top.hideProgressbar();
			});
		}
	});
}

/**
 * 初始化回收列表页面
 */
function init_recycleList_page() {
	$(".a_undelete,.a_completelyDelete").each(function() {
		$(this).click(function() {
			var url = $(this).attr("href");
			var operate = $(this).text();
			var callback = function() {
				top.showProgressbar();
				$.post(url, function(data) {
					if (data.msg == "true") {
						top.hideProgressbar();
						var recycleTab = $("#tabs_recycle").tabs();
						recycleTab.tabs("refresh");
					}
				}, "json");
			}
			top.dialog_confirm("确认框", "确定" + operate + "？", callback);
			return false;
		});
	});
}

/**
 * 初始化uEditor
 */
function init_uEditor() {
	var ue = UE.getEditor('container', {
		toolbars : [ [ 'undo',// 撤销
		'redo', // 重做
		'|', // 分隔线
		'fontfamily', // 字体
		'fontsize', // 字号
		'bold',// 加粗
		'italic', // 斜体
		'underline', // 下划线
		'strikethrough',// 删除线
		'forecolor', // 字体颜色
		'backcolor',// 背景色
		'|', // 分隔线
		'removeformat', // 清除格式
		'formatmatch',// 格式刷
		'|', // 分隔线
		'emotion', // 表情
		'insertimage', // 多图上传
		'insertcode', // 代码语言
		] ],
		focus : true,// 初始化时，是否让编辑器获得焦点true或false
		wordCount : false,// 关闭字数统计
		enableAutoSave : false,// 关闭自动保存（不起作用，有临时解决办法）
		maximumWords : 800,// 允许的最大字符数,默认值：10000
		autoHeightEnabled : true,// 是否自动长高，默认true
		autoFloatEnabled : true,// 是否保持toolbar的位置不动，默认true
		elementPathEnabled : false
	// 是否启用元素路径，默认是显示
	});

	// TODO UE.getEditor('editor').execCommand('insertHtml', value)
	$(".a_at").each(function() {
		$(this).click(function() {
			var author = $(this).parent().parent().find(".authorName");
			var floor = $(this).parent().parent().find(".span_right_top");
			var url = author.attr("href");
			ue.execCommand("insertHtml","<blockquote class='cite'>回复"
					+ floor.text() + "：<a href='" + url
					+ "' class='a_watch_summary btn_at'>@"
					+ author.text() + "</a></blockquote>");
			return false;
		});
	});

	$(".list_container .div_reply").each(
			function() {
				$(this).mouseover(
						function() {
							$(this).children(".span_right_bottom").css(
									"visibility", "visible");
						});
				$(this).mouseout(
						function() {
							$(this).children(".span_right_bottom").css(
									"visibility", "hidden");
						});
			});

	// 对编辑器的操作最好在编辑器ready之后再做
	ue.ready(function() {
		// 设置编辑器的内容
		ue.setContent('');

		// 获取html内容，返回: <p>hello</p>
		var html = ue.getContent();
		// 获取纯文本内容，返回: hello
		var txt = ue.getContentTxt();

		// 配置项enableAutoSave在1.4.3代码里还未生效,临时解决方法:
		ue.on('showmessage', function(type, m) {
			if (m['content'] == '本地保存成功') {
				return true;
			}
		});

	});
}

/**
 * 初始化上传页面
 */
function init_upload_page() {
	$("input.text").addClass("ui-widget-content ui-corner-all");

	$("#a_upload_workflow").button();
	$("#a_upload_workflow").click(function() {
		$("input[id=upload]").click();
		return false;
	});
	$("#upload").change(function() {
		$("#workflowPath").val($("#upload").val());
	});
}

/**
 * 响应键盘监听事件
 * 
 * @param btn_name按钮名称
 * @param btn按钮对象
 * @param event监听事件对象
 * @param event_type事件类型（ctrl_enter、enter、backspace）
 */
function responseKeyEvents(btn_name, btn, event, event_type) {
	if (event_type == "ctrl_enter") {
		if (event.ctrlKey && (event.which == 10 || event.which == 13)) {
			if (btn.text() == btn_name) {
				btn.click();
			}
		}
	}
	if (event_type == "enter") {
		if (event.which == 10 || event.which == 13) {
			if (btn.text() == btn_name) {
				btn.click();
			}
		}
	}
}

/**
 * 文字闪动效果
 * 
 * @param ele操作的元素
 * @param cls要变化的样式
 * @param times闪动次数
 */
function shake(ele, cls, times) {
	var i = 0, t = false, o = ele.attr("class") + " ", c = "", times = times || 2;
	if (t)
		return;
	t = setInterval(function() {
		i++;
		c = i % 2 ? o + cls : o;
		ele.attr("class", c);
		if (i == 2 * times) {
			clearInterval(t);
			ele.removeClass(cls);
		}
	}, 100);
}

/**
 * 遮罩层显示进度条
 */
function showProgressbar() {
	var progressbar = $("#progressbar");
	progressbar.progressbar({
		value : false
	});
//	progressbar.progressbar( "enable" );
	progressbar.show();
	$("#overlay").show();
}

/**
 * 提交表单
 * 
 * @param formObj
 */
function submit_form(formObj) {
	var bValid = true, tips = $(".validateTips"), name = $("#name"), password = $("#password"), allFields = $(
			[]).add(name).add(password);
	allFields.removeClass("ui-state-error");

	bValid = bValid && checkLength(tips, name, "用户名", 2, 10);
	bValid = bValid && checkLength(tips, password, "密码", 5, 16);

	// bValid = bValid&& checkRegexp(name,/^[a-z]([0-9a-z_])+$/i,"Username may
	// consist of a-z, 0-9, underscores, begin with a letter.");
	// From jquery.validate.js (by joern), contributed by Scott Gonzalez:
	// http://projects.scottsplayground.com/email_address_validation/
	bValid = bValid
			&& checkRegexp(tips, password, /^([0-9a-zA-Z])+$/,
					"密码必须在 a-z 0-9 内");

	if (bValid) {
		formObj.submit();
	}
}

/**
 * 更新上移下移后a标签样式
 */
function updateCss() {
	var currentTr;
	$(".a_moveUp").each(function() {
		currentTr = $(this).parent().parent();
		if (currentTr.index() == 0) {
			$(this).addClass("useless");
		} else {
			$(this).removeClass("useless");
		}
	});
	$(".a_moveDown").each(function() {
		currentTr = $(this).parent().parent();
		// 如果能找到下一个同辈元素
		if (currentTr.next().length == 1) {
			$(this).removeClass("useless");
		} else {
			$(this).addClass("useless");
		}
	});
}

/**
 * 更新警告/提示信息
 * 
 * @param tips
 * @param text
 */
function updateTips(tips, text) {
	$(".validateTips").show();
	tips.text(text);
	shake(tips, "newClass", 3);
}

function zTreeOnCheck(event, treeId, treeNode) {
	$(".ui-button").each(function() {
		$(this).removeClass("ui-state-active");
	});

};